/**
 * 接口：interface 规范类或者对象的格式的一种工具
 *  接口用来规范对象的时候 和 type规范对象的效果是一样的
 *  二者的区别在于 接口可以重复定义，内部会做一个类似mixin的操作将二者混合起来，而type只能定义一次
 */

/**
 * 总结 接口与type约束的区别
 *  - 接口可以规范类 type只能规范对象
 *  - 接口可以重复定义，内部会做一个类似mixin的操作将二者混合起来，而type只能定义一次
 */
{
	interface userType1 {
		name: string
		age: number
	}

	// 接口是可以重复定义的  内部会做一个mixin操作 将重复的定义的结合起来
	interface userType1 {
		sex: number
	}

	type userType2 = {
		name: string
		age: number
	}

	let user1: userType1 = {
		name: 'Jimmy',
		age: 22,
		sex: 1,
	}

	console.log(user1)
	let user2: userType2 = {
		name: 'Jimmy',
		age: 22,
	}

	console.log(user2)
}
